jmp near start
mytext: db 'H',0x07,'e',0x07,'l',0x07,'l',0x07,'o',0x07,\
           ' ',0x07,'M',0x07,'o',0x07,'l',0x07,'i',0x07,'y',0x07,\
           ',',0x07,' ',0x07,'O',0x07,'f',0x07,'f',0x07,'s',0x07,\
           'e',0x07,'t',0x07,':',0x07,' ',0x07
start:
mov ax,0xb800
mov es,ax

mov ax,0x07c0
mov ds,ax

;copy mytext
;ds:si---> es:di
mov si,mytext
mov di,0x00
mov cx,(start-mytext)/2
cld
rep movsw

;dispatch
mov ax,number
mov bx,ax
mov si,10
mov cx,5

digit:
    xor dx,dx
    div si
    ;dl
    mov [bx],dl
    inc bx
    loop digit

;display
mov bx,number
mov si,0x04
show:
    mov al, [bx+si]
    add al, 0x30
    mov ah, 0x07
    mov [es:di],ax
    add di,2
    dec si
    jns show

jmp near $

number: db 0,0,0,0,0
times 510-($-$$) db 0
db 0x55,0xaa